home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-12-09 | 2.8 KB | 69 lines | [TEXT/R*ch] |
- { /*
-
- • As posted to comp.sys.mac.programmer.info:
-
- - supports PPC native modules. (The Control Strip traps are linked to
- ExtensionsStripLib, a shared library.)
-
- - safe sending of AppleEvents, new drags, ect. (Made possible because modules
- can request a piece of Extensions Strip's application context.)
-
- - event record checking/modification. Modules can look at the current event
- record whenever they are called. Modules can also request to peek at and modify
- all events, like jGNE filters do, but with an event mask to cut down on
- overhead.
-
- - better environment recognition. Modules can obtain their total real estate on
- the strip and can sense the strip's orientation and color scheme.
-
- - greater overall freedom. Modules can display an area of any size, request not
- to be hilited when clicked, and can even change their features at any time.
-
-
- • "ES compatible" checklist:
-
- - All memory that was ever permanently allocated is disposed of when the
- sdevCloseModule selector is called.
-
- - Modules that draw text return a display width based upon a calculation of
- the string's width. This is also a requirement for modules under Control Strip
- version 1.2 and later because of the strip's configurable font/size.
-
- - All dialogs are loaded/created "on the fly". Not doing so, as Apple's
- FileSharing & AppleTalk modules currently do, make the windows context-dependent
- of the process they loaded in. BTW, these modules will crash under Control Strip
- if you quit the Finder. That's Apple for you.
-
-
- • "ES savvy" checklist for existing modules:
-
- - All AppleEvents are sent safely (SBSimpleAESend() is the easiest way to do
- this.)
-
- - The sdevDontPeriodicTickle bit is returned with the features if no idle events
- are required. Be nice and return this if you don't need idle time!
-
- - Modifier key and mouse position checks are performed by reading from the event
- record with a call to SBGetCurrentEvent(). This ensures that the user's
- wishes are carried out. If they, for instance, click on your module with
- the shift key down while the CPU was busy, then your module can tell that the
- shift key actually was down for the click, even though the key may have been
- released before your module finally got called.
-
- - Support of ES' integrated drag stuff:
- 1. return the sdevHasDragHandlers bit with the features if a drag handler
- is installed.
- 2. use the sdevDragAccept selector to return whether your drag handler(s)
- accept the current drag or not.
- 3. the drag handler(s) call SBGetTotalModuleBounds() to find the total
- dragable space.
- 4. new drags are started from within ES' context so that they may leave
- the strip.
-
- - Alias resolving is performed intelligently. See the "Intelligent Alias
- Resolving" section of the Programming Notes file for info on this.
-
- - Any other ES API stuff is supported by the module.
-
- */ }
-